As the use of computers has become more wide spread, large organizations and/or companies have acquired computers from a wide variety of platforms and/or models and networked these computers together. Computers from a wide variety of platforms and/or models are also known as heterogeneous computers. Storage area networks (SAN) were developed to provide storage for the heterogeneous computers by providing a high-speed network of shared storage devices. A SAN architecture, typically, makes all storage devices available to many of the computers in a large network, such as those associated with large organizations and/or companies. In this case, the SAN architecture may pool the storage devices, for example, to ease the management of the storage devices.
Various methods of increasing the I/O rates for accessing data between computers and storage devices have been developed. Frequently, storage devices provide different levels of access latency times, throughput expressed as Input/Output (I/O) rates, and/or transfer rates, for reading data from the storage devices and for writing data to the storage devices. Storage devices, such as caches, system memory, or solid state devices (SSD), that provide, for example, fast access latency, throughput, IO rates and/or transfer rates (referred to hereinafter as “fast storage devices”) may be used to permanently or temporarily store data as it is being communicated between applications executing on computers and storage devices that provide, for example, slower access latency, throughput, IO rates and/or transfer rates (referred to hereinafter as “slower storage devices”). When an application requests to write data, the data may be stored first in fast storage devices and then later stored in the slower storage devices. When the data is written to the fast storage device the application is informed that the data has been stored and, therefore, does not have to wait until the data is actually stored on the slower storage device.
Many of these methods have been used to speed up the communication of data between computers, such as clients, and the storage devices over a SAN for the purpose of increasing I/O rates.